const { Router } = require( 'express' )
// const mysql = require( 'mysql' )
const db=require('./../DB/dbconfig')
const userRouter = Router()

module.exports = userRouter;

// userRouter.route( "/login" ).post( ( req, res ) => {
//   const { username, password } = req.body;

//   //  判断账号，密码

//   if ( !username || !password ) {
//     // res.json(
//     //   {
//     //     code: 4001,
//     //     msg: '账号密码不能为空。'
//     //   }
//     // )
//     res.redirect( "/index.html" )
//     return //结束函数的执行，后面操作数据库的代码，将不执行。
//   }
//   // 写SQL语句时，不能直接用变量去拼接SQL字符串。只能用?占位。避免sql注入的安全问题发生。
//   const sql = 'select * from users where uaccess = ? and upassword = ?;'
//   const params = [ username, password ]  // params数组元素，必须与？的具体功能匹配。
//   const cb = ( err, data ) => {
//     // err,当执行SQL发生错误时，err的值就不是null.
//     // data,查询成功后的结果。 []的形式展示。
//     console.log( err )
//     console.log( data )
//     if ( err === null && data.length === 1 ) {
//       res.redirect( "/page/main.html" )
//     } else {
//       res.redirect( "/index.html" )
//     }
//   }

//   // 操作数据课的步骤：
//   // 1. 创建一个链接对象
//   const conn = mysql.createConnection( {
//     host: '127.0.0.1',  //要访问的目标数据库所在电脑的IP地址，'127.0.0.1'， 'localhost', '192.168.1.161'
//     port: "3306",  // 默认是3306，安装时要是更改了端口，这写改后的端口号。
//     user: 'root',  // 不是电脑的开机密码
//     password: '123456',  // 是安装MYSQL时，设置的密码
//     database: 'mydoctor', // 操作的那个具体的数据库的名字
//     multipleStatements: true, // 支持执行多条 sql 语句
//     timezone: '08:00' // 设置时区,如果不匹配，就可能有时差
//   } )

//   conn.connect()  // 2.打开链接
  // conn.query( sql, params, cb ) // 3. 执行sql
//   conn.end() //4.关闭链接

// } )

// // /index.html -> /login  -> /index.html
userRouter.route( "/login" ).post( ( req, res ) => {
  const { username, password } = req.body;

  //  判断账号，密码

  if ( !/^\w{6,20}$/.test(username)) {
    res.json(
      {
        code: 4001,
        msg: '账号不能为空或者长度不正确。'
      }
    )
   
    return 
  }
  if ( !/^\w{6,8}$/.test(password)) {
    res.json(
      {
        code: 4002,
        msg: '密码不能为空或者长度不正确。'
      }
    )
   
    return 
  }
  // 写SQL语句时，不能直接用变量去拼接SQL字符串。只能用?占位。避免sql注入的安全问题发生。
  const sql = 'select * from users where uaccess = ? and upassword = ?;'
  const params = [ username, password ]  // params数组元素，必须与？的具体功能匹配。
  const cb = ( err, data ) => {
    // err,当执行SQL发生错误时，err的值就不是null.
    // data,查询成功后的结果。 []的形式展示。
    console.log( err )
    console.log( data )
    if ( err === null && data.length === 1 ) {
      res.json({
        code:0,
        msg:'登录成功',
        data:data
      })
    } else {
      res.json({
        code:4003,
        msg:'登录失败',
        data:[]
      })
    }
  }

  // 操作数据课的步骤：
  // 1. 创建一个链接对象
  db.connect(sql,params,cb)

} )

// /index.html -> /login  -> /index.html
userRouter.route("/access/getAccess").get((req,res)=>{
  let sql="select * from jobs"
  let params=[];
  let cb=(err,data)=>{
    if(!err){
      res.json({code:0,msg:'查询成功',data})
    }else{
      res.json({code:4003,msg:'查询失败',data:[]})
    }
  }
  db.connect(sql,params,cb)
})